package main

import (
	"fmt"
	"gin.study/control"
	"gin.study/routers"
	"net/http"
)

func main() {
	//gin.DisableConsoleColor()
	//写入日志
	//f, _ := os.Create("gin.log")
	//gin.DefaultWriter = io.MultiWriter(f)

	//r := routers.SetRouter()
	//r := gin.Default()  //默认使用Logger Recover两个中间件
	//r := gin.New()  //终端没有打印日志

	// 加载多个APP的路由配置
	routers.Include(control.Routers)
	// 初始化路由
	r := routers.Init()

	//注册中间件
	//r.Use(middleware.BeforeHandlers)  //全局注册，所有路由都会使用该中间件，单个路由使用在路由中添加
	//r.Use(middleware.MiddleWare())  //使用闭包需要加()调用

	//路由组
	routers.GroupRouter(r)
	//routers.SetRouter(r)  //不分app内路由时可使用

	//模板渲染.
	//r.LoadHTMLGlob("template/*")
	//如果多层目录结构。使用template/**/*,如user/user.html
	//html页面头尾必须加上{{define "user/user.html"}}和{{end}}
	r.LoadHTMLGlob("template/**/*")

	//加载静态文件
	//第一个参数为在项目代码使用路径，第二个参数为静态文件实际路径
	r.Static("statics","./statics")
	//将项目根目录下文件以文件系统形式显示，也可以指定显示文件
	r.StaticFS("files",http.Dir("."))

	//监听端口默认为8080
	err := r.Run()
	if err!=nil{
		fmt.Println("service start error:", err.Error())
	}
}


